Predator: A Practical Tool for Checking Manipulation of Dynamic Data Structures Using Separation Logic

نویسندگان

  • Kamil Dudka
  • Petr Peringer
  • Tomás Vojnar
چکیده

Predator is a new open source tool for verification of sequential C programs with dynamic linked data structures. The tool is based on separation logic with inductive predicates although it uses a graph description of heaps. Predator currently handles various forms of lists, including singly-linked as well as doubly-linked lists that may be circular, hierarchically nested and that may have various additional pointer links. Predator is implemented as a gcc plug-in and it is capable of handling lists in the form they appear in real system code, especially the Linux kernel, including a limited support of pointer arithmetic. Collaboration on further development of Predator is welcome.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Predator: A Verification Tool for Programs with Dynamic Linked Data Structures - (Competition Contribution)

Predator is a tool for automated formal verification of sequential C programs with dynamic linked data structures. It is in principle based on separation logic, but uses a graph-based heap representation. This paper first provides a brief overview of Predator and then discusses experience with its participation in the Software Verification Competition of TACAS’12.

متن کامل

Predator: A Tool for Verification of Low-Level List Manipulation - (Competition Contribution)

Predator is a tool for automated formal verification of sequential C programs operating with pointers and linked lists. The core algorithms of Predator were originally inspired by works on separation logic with higher-order list predicates, but they are now purely graph-based and significantly extended to support various forms of low-level memory manipulation used in system-level code. This pap...

متن کامل

Smallfoot: Modular Automatic Assertion Checking with Separation Logic

Separation logic is a program logic for reasoning about programs that manipulate pointer data structures. We describe Smallfoot, a tool for checking certain lightweight separation logic specifications. The assertions describe the shapes of data structures rather than their detailed contents, and this allows reasoning to be fully automatic. The presentation in the paper is tutorial in style. We ...

متن کامل

Applications of Fuzzy Program Graph in Symbolic Checking of Fuzzy Flip-Flops

All practical digital circuits are usually a mixture of combinational and sequential logic. Flip–flops are essential to sequential logic therefore fuzzy flip–flops are considered to be among the most essential topics of fuzzy digital circuit. The concept of fuzzy digital circuit is among the most interesting applications of fuzzy sets and logic due to the fact that if there has to be an ultimat...

متن کامل

Automatic Verification of Programs with Complex Data Structures

Although the software verification has made important progress during the last ten years, the verification of programs manipulating dynamic memory and complex data structures is still a challenge for the research in this domain. Automatic reasoning about the behaviours of such programs is a challenging problem because the classical techniques (static analysis or model checking) face big scalabi...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2011